package com.my.code.sort;

import java.util.Arrays;

/**
 * 03 插入排序<br>
 * 插入排序是一种简单直观的排序算法，在待排序的数组中，从后向前扫描，找到相应的位置并插入
 *
 * @author zzl
 * @date 2020/10/16
 */
public class InsertSort {

    public static void main(String[] args) {
        int[] arr = {5, 7, 1, 6, 4, 8, 3, 2};
        sort(arr);
        System.out.println(Arrays.toString(arr));
    }

    public static void sort(int[] arr) {
        int curVal;
        for (int i = 0; i < arr.length - 1; i++) {
            curVal = arr[i + 1];
            int preIndex = i;
            while (preIndex >= 0 && curVal < arr[preIndex]) {
                arr[preIndex + 1] = arr[preIndex];//从当前位置开始逐个往前交换
                preIndex--;
            }
            arr[preIndex + 1] = curVal;
        }
    }

}
